package org.iuniv.adb.patent.service;

import java.util.List;
import java.util.Map;

import org.iuniv.adb.patent.model.Patent;

/**
 * @author ctran33
 *
 */
public interface PatentService {

    /**
     * Method to get Patent details by patent number
     *
     * @param patNumber
     * @return {@link Patent}
     */
    Patent findPatentByNum(String patNumber) throws Exception;

    /**
     * Method to get patents by query options (patent number or title)
     *
     * @param queryParams
     * @return List of {@link Patent}
     */
    List<Patent> findPatentsByQuery(String queryParams) throws Exception;

    /**
     * Method to get patents based on advanced options (AND conditions)
     *
     * @param advOpts
     * @return List of {@link Patent}
     * @throws Exception
     */
    List<Patent> findPatentsByAdvOpts(Map<String, Object> advOpts) throws Exception;
}
